# Test that 64 bit movq instructions with immediate operands
# that fit in 32 bits are shortened.

RUN: %clang %cflags %p/Inputs/asm_main.c %p/Inputs/shorten_mov.s -o %t.exe
RUN: llvm-bolt %t.exe -o %t
RUN: llvm-objdump -d %t --print-imm-hex | FileCheck %s

CHECK: <foo>:
CHECK-NEXT:  48 c7 c0 11 11 00 00 	movq    $0x1111, %rax
CHECK-NEXT:  48 c7 c0 11 11 00 00 	movq    $0x1111, %rax
CHECK-NEXT:  48 c7 c0 22 22 11 11 	movq    $0x11112222, %rax
CHECK-NEXT:  48 b8 22 22 11 11 01 00 00 00	movabsq $0x111112222, %rax
CHECK-NEXT:  48 c7 c0 ff ff ff ff 	movq    $-0x1, %rax
CHECK-NEXT:  48 b8 ff ff ff ff ff ff ff 7f	movabsq $0x7fffffffffffffff, %rax
